package provatable;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the LOCALE database table.
 * 
 */
@Entity
@NamedQuery(name="Locale.findAll", query="SELECT l FROM Locale l")
public class Locale implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private long oid;

	private String descrizione;

	private String indirizzo;

	private String orarioapertura;

	private String orariochiusura;

	//bi-directional many-to-one association to Categoria
	@ManyToOne
	private Categoria categoria;

	//bi-directional many-to-one association to Feedback
	@ManyToOne
	private Feedback feedback;

	//bi-directional many-to-one association to Service
	@ManyToOne
	private Service service;

	//bi-directional many-to-many association to Gruppo
	@ManyToMany
	@JoinTable(
		name="LOCALE_GRUPPO"
		, joinColumns={
			@JoinColumn(name="LOCALE_OID")
			}
		, inverseJoinColumns={
			@JoinColumn(name="GRUPPO_OID")
			}
		)
	private List<Gruppo> gruppos;

	//bi-directional many-to-one association to User
	@OneToMany(mappedBy="locale")
	private List<User> users;

	public Locale() {
	}

	public long getOid() {
		return this.oid;
	}

	public void setOid(long oid) {
		this.oid = oid;
	}

	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	public String getIndirizzo() {
		return this.indirizzo;
	}

	public void setIndirizzo(String indirizzo) {
		this.indirizzo = indirizzo;
	}

	public String getOrarioapertura() {
		return this.orarioapertura;
	}

	public void setOrarioapertura(String orarioapertura) {
		this.orarioapertura = orarioapertura;
	}

	public String getOrariochiusura() {
		return this.orariochiusura;
	}

	public void setOrariochiusura(String orariochiusura) {
		this.orariochiusura = orariochiusura;
	}

	public Categoria getCategoria() {
		return this.categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

	public Feedback getFeedback() {
		return this.feedback;
	}

	public void setFeedback(Feedback feedback) {
		this.feedback = feedback;
	}

	public Service getService() {
		return this.service;
	}

	public void setService(Service service) {
		this.service = service;
	}

	public List<Gruppo> getGruppos() {
		return this.gruppos;
	}

	public void setGruppos(List<Gruppo> gruppos) {
		this.gruppos = gruppos;
	}

	public List<User> getUsers() {
		return this.users;
	}

	public void setUsers(List<User> users) {
		this.users = users;
	}

	public User addUser(User user) {
		getUsers().add(user);
		user.setLocale(this);

		return user;
	}

	public User removeUser(User user) {
		getUsers().remove(user);
		user.setLocale(null);

		return user;
	}

}